Racket do
Racket 的 do
表达式提供了一种执行具有状态的迭代的方式。它允许您定义一组迭代变量,并在每次迭代时更新它们的值,直到满足某个终止条件。
以下是 do
表达式的基本结构和用法示例:
基本结构
(do ([var1 init1 step1]
[var2 init2 step2]
...)
(end-test-expr final-expr)
body ...)
注意括号:final-expr 和 end-test-expr 要在同一个括号里面!
var1, var2, ...
是迭代变量。init1, init2, ...
是迭代变量的初始值。step1, step2, ...
是每次迭代后更新变量的表达式。end-test-expr
是终止条件表达式。final-expr
是当终止条件为真时的返回值。body ...
是循环体,每次迭代时执行。
示例代码
以下代码使用 do
表达式计算 1 到 10 的和:
(define sum
(do ([i 1 (+ i 1)]
[total 0 (+ total i)])
((> i 10) total)))
display sum ; 输出 '55
代码解释:
i
是从 1 开始的迭代变量,每次迭代增加 1。total
是累积和,每次迭代增加i
的值。- 终止条件是
i
大于 10,此时返回total
。
本文作者:Maeiee
本文链接:Racket do
版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!
喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!